#合并购物车
import json

from django_redis import get_redis_connection

from utils.superjiajiemi import jiajiemiSuper


def merge_cookie_to_redis(request,response):
    '''
    3.1 Redis数据库中的购物车数据保留。
    3.2 如果cookie中的购物车数据在Redis数据库中已存在，将cookie购物车数据覆盖Redis购物车数据。
    3.3 如果cookie中的购物车数据在Redis数据库中不存在，将cookie购物车数据新增到Redis。
    :param request:
    :return:
    '''

    #读取cookie中购物车数据
    data = request.COOKIES.get('carts') #data是str
    if data:

        cookie_dict = json.loads(jiajiemiSuper.jiemi(data))  #{sku_id:{}}

        #获得redis中购物车数据
        client = get_redis_connection('carts')
        for cookie_sku_id in cookie_dict.keys(): #取出cookie中所有的 sku_id,遍历cookie中数据
            client.hset(request.user.id,cookie_sku_id,json.dumps(cookie_dict[cookie_sku_id]))
            client.save()
        #删除cookie
        response.delete_cookie('carts')
    return response

